/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package DAO;

import ClassesUnicas.ImagemApresentadaSubFase;
import java.io.IOException;
import java.nio.file.Path;
import java.util.ArrayList;

/**
 * DAOImagemApresentadaSubFase

 Versao 1.0

 Data Criação 10/02/2014
 *
 * @author Igor
 */
public interface DAOImagemApresentadaSubFase {
    /**
     * Busca apenas uma imagem, respeitando os parametro enviados como parametro
     *
     * @param idRosto
     * @param idExpressao
     * @param intensidade
     * @return
     */
    public ImagemApresentadaSubFase buscaImagemApresentadaSubFase(long idRosto, long idExpressao, long intensidade);

    /**
     * Busca um conjunto de imagens do BD respeitando a intensidade passada como
     * parametro
     *
     * @param intensidade
     * @return
     */
    public ArrayList<ImagemApresentadaSubFase> buscaVariasImagensApresentadasSubFase(long intensidade, int repetirImagens);

    /**
     * Realiza a gravacao de uma imagem apresenta, eh executado apenas apos a
     * avaliacao
     *
     * @param idIstanciaSubFase
     * @param imagem
     */
    public void gravaImagemApresentadaSubFase(long idIstanciaSubFase, ImagemApresentadaSubFase imagem);

    /**
     * Constroi a variavel Path apartir da String passada como parametro
     *
     * @param dir
     * @return
     * @throws IOException
     */
    public Path constroiDiretorioImagem(String dir) throws IOException;
}
